#include "commerrno.h"
#include "CPartnerCfg.h"

int CPartnerCfg::Init()
{
    _astCondition.Clear();
    _astPartnerCfgs.m_iUsedCount = _astPartnerCfgs.GetCount();

    for (int i = 0; i < _astPartnerCfgs.Size(); ++i)
    {
        _astPartnerCfgs[i].Clear();
    }

    return 0;
}

int CPartnerCfg::AddConfig(CPartnerCfgData& stCfgData)
{
    if (!stCfgData.IsValidAttr())
    {
        return ERROR_PARTNER_ERROR_CFG;
    }

    if (!stCfgData.IsValidID())
    {
        return ERROR_PARTNER_OVER_RESID;
    }

    if (_astPartnerCfgs[stCfgData._shResID - 1].IsValidID()) 
    {
        return ERROR_PARTNER_REPEAT_RESID;
    }

    _astPartnerCfgs[stCfgData._shResID - 1] = stCfgData;

    return 0;
}

int CPartnerCfg::FindConfig(short shResID)
{
    if (shResID > MAX_PARTNER_CFG_COUNT || shResID <= 0)
    {
        return -1;//因为返回下标 所以这里必须返回负数
    }

    if (!_astPartnerCfgs[shResID - 1].IsValidID()) 
    {
        return -1;//因为返回下标 所以这里必须返回负数
    }

    if (shResID != _astPartnerCfgs[shResID - 1]._shResID)
    {
        return -1;//因为返回下标 所以这里必须返回负数
    }

    return shResID - 1;
}

